#ifndef HT_H
#define HT_H

#include "ll.h"

// Hash table is a structure that maps strings, to a data of what ever type.

// The table contains a pointer to an array of linkedlist of ht_node.
typedef struct ht_table ht_table;

ht_table* ht_create();

void* ht_set(ht_table*, char const*, void*);
void* ht_get(ht_table*, char const*);
ll_list* ht_get_keys(ht_table*);
ll_list* ht_get_values(ht_table*);

void ht_delete(ht_table*);

#endif
